概述 内容 参考 前言 工作流 工作流概念 工作流方式 向导类工作流(6个) 设置类工作流(20个) 流程类工作流(27个) 工作流总结 参考 ==标准相关== BPMN介绍 https://www.cnblogs.com/lighten/p/5931207.html BPMN2.0规范 http://blog.csdn.net/strutsfamily/article/details/40741963 ==工作流== 业务流程管理BPM和工作流workflow的联系和区别 http://blog.51cto.com/maryafang/247668 (必看) 工作流现状 http://www.joinwork.net/document/The%20State%20of%20Workflow2.htm BPEL与XPDL的区别 https://wenku.baidu.com/view/c8095ce9856a561252d36f2a.html 工作流引擎核心调度算法与PetriNet http://blog.csdn.net/james999/article/details/351724 过程建模EPC,我拿什么拯救你 http://blog.csdn.net/james999/article/details/1326228 荣浩 http://ronghao.iteye.com ==id工作流== based on the Workflow Management Coalition and OMG standards. http://wiki.compiere.com/display/docs/Workflow http://wiki.compiere.com/display/docs/Common+Functions+and+Commands ==Activiti集成== https://www.cnblogs.com/f2flow/p/7147712.html 关于Activiti的工作流选型 (必看) /** * Process State Engine. * Based on OMG Workflow State * * @author Jorg Janke * @version $Id: StateEngine.java,v 1.3 2006/07/30 00:54:44 jjanke Exp $ */ 前言 A. 每个单据都是使用内置标准工作流完成。 1.1 单据一一对应数据库表,工作流基于“单据处理(动作)”或“表字段值”触发开始。 1.2 单据相比其他通用数据记录,会多出C_DocType_ID, DocumentNo, DateDoc, Processed, IsApproved, DocStatus, DocAction和Description字段。[more1](http://wiki.adempiere.net/Document_Engine),[more2](http://wiki.adempiere.net/Spin_Contribution:_FR:_Table_like_Document) 1.3 单据处理(动作):按钮位于DocAction字段,根据提交动作,触发开始工作流。 1.4 表字段值:在工作流中定义单据表的任意字段的值条件,触发开始工作流。 1.5 总结:单据表在DocAction上放置工作流链接,工作流指定单据表进行单据处理动作触发。 1.6 Compiere ensures that two users do not attempt to initiate the same workflow. If a user attempts to start a Document Process Workflow that has already been started the following message will display. The Message indicates that a Workflow already exists and at what stage it is in. This message was generated when a User attempted to Process the Requisition entered that was awaiting Verification by GardenUser. 注意:字段isapproved是对金额判断,如果是对非金额判断,不能使用该字段,否则不工作。 见MWFNode.isUserApproval,https://groups.google.com/d/msg/idempiere/KsBh9xATENQ/5gJkqqEYP0oJ 1.6 参考:http://wiki.adempiere.net/Spin_Contribution:_FR:_Table_like_Document B. 可以修改或者新建工作流,自定义单据处理流程。 C. 以C_order单据(表)为例,所有实体为标准工作流,某个实体的销售和采购单据为不同工作流如何处理? 3.1 标准工作流为System权限,修改该工作流,将影响所有实体,建议复制标准工作流拷贝。 3.2 某实体下新建标准工作流拷贝,根据IsSaleTrx条件设计不同的工作流路线(销售和采购)。 D. 以Process_Order为例,标准工作流在不同流程路线下产生的多个过程实例。 4.1 单据草稿-准备:start-auto,见1000253 4.2 单据准备-已完成:start-prepare-completed,见1000254 4.3 重复做DocAction,工作流重复执行一次,活动的时间会更新。(只记录最后一次工作流时间) 问题:当某个工作流路线,进行到一半(等待审批),用户重新提交文档动作(草稿-准备),所有工作流节点将再次从头执行,是否重复进行节点动作(待确认)。 多个工作流流程 工作流 工作流的作用: 1. 定义业务流程 2. 自动化 3. 功能集成 4. 通知 工作流概念 工作流:Workflow 节点:Node 切换:Transition 条件:Transition condition 工作流流程:Workflow process 活动:Activity 事件:Event 职责:Responsible 注:角色、用户(必须是BP,且需要选中员工和销售代表)、组织(按组织主管)。 工作流方式 1. 通用工作流:默认有20个通用工作流,操作步骤步骤式工作流。 2. 向导工作流:默认有6个向导,实体、BP、税、价格表、销售、产品,在初始化实体窗口显示。 3. 单据处理工作流:每个单据的标准处理工作流,触发的单据内置流程,如POS订单。27个。 4. 单据值工作流:当某个字段符合条件后触发的工作流,比如新BP的信用审核。 另idempiere的制造插件还加入了“制造”工作流,即工艺路线,“质量”工作流(未测试),即质检路线。 5. 生产工作流:工艺路线 6. 质量工作流:质量路线 系统自带工作流(53个)的命名为: Process: 单据处理工作流 Setup: 通用工作流 Wizard:向导式工作流 向导类工作流(6个) 实体初始化的基本工作流,可以设置优先级别来安排顺序,默认顺序为: 实体、BP、产品、销售、价格表、税。 设置类工作流(20个) 与向导类工作流非常相同,非系统初始化用的功能设置工作流。 流程类工作流(27个) 1. 单据处理类型:基于单据(表)的字段判断 2. 标准Process工作流自带如下4个节点: \ (Start) ------> (DocPrepare) -----> (DocComplete) \ |---------> (DocAuto) (Doc Start) :等待(挂起) (DocPrepare):单据动作=Prepare (Doc Complete):单据动作=Complete (Doc Auto):单据动作=NONE,当非“标准工作流”动作发生时(比如void),系统会到docAuto节点。 标准工作流节点定义:仅开放状态的单据 (草案、进行中、已审批、已否决、无效) 和标准用户动作 (准备、完成、审批、否决) 可以继续运行。使用该选项避免定义如下细节: 1、如何自动处理某些用户动作 (解锁、使无效、过账、重新激活) 。 2、对于用户动作 (完成、等待、关闭、作废、逆转)何时关闭单据。 单据状态和动作关系 工作流总结 1. 优点 1.1 基于单独任何一个表,驱动触发。 1.2 工作流节点配置灵活,可按组织维护 1.3 工作流流程日志查询,原始单据追溯方便 1.4 简单 2. 缺点 2.1 只能对单个表进行工作流 2.2 不支持多人审核(支持不完美),不支持会签(投票) 2.3 不支持指定节点流转 2.4 不支持子工作流嵌套 2.5 自带界面比较难看 2.6 节点无法发送通知,只能发送邮件 2.7 无法细分业务子流程 2.8 节点无法灵活指定多用户、无法手动跳转 缺点多说下: 2.1 只能针对单个表进行字段触发或者字段设置(用户选择)。比如销售订单新建后触发工作流,需要设定销售明细表相关字段,默认无法做到,只能通过触发自定义流程完成。 2.2 多人审批无法在某个节点上合并线程,即不同线程之间无法相互作用。 2.6 天杀的,不带通知。 2.7 工作流无法对业务流程进行灵活定义。比如销售单据类型分POS订单或者标准订单。POS订单在系统准备后自动生成发货单、发票、付款单。这些子流程无法在工作流中定义,只能通过代码完成。 2.8 节点职责的类型有“角色”“用户”,但是无法多选用户。